<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ProductoDAO
 *
 * @author JosLap
 */
class ProductoDAO {
    //put your code here
    
    public function saveProducto($producto) {
        Conexion::conectar();
        Conexion::selectDB();
        $query = $this->mapProductoToInsertSql($producto);
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('saveProducto => '.$mensaje);
        return $mensaje;
    }
    
    public function updateProducto($producto) {
        Conexion::conectar();
        Conexion::selectDB();
        $query = $this->mapProductoToUpdateSql($producto);
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('updateProducto => '.$mensaje);
        return $mensaje;
    }
    
    public function deleteProducto($idProducto) {
        Conexion::conectar();
        Conexion::selectDB();
        $query = "DELETE FROM productos WHERE id = '$idProducto'";
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('deleteProducto => '.$mensaje);
        return $mensaje;
    }

    public function getAllProductos() {
        Conexion::conectar();
        Conexion::selectDB();
        $productos = array();
        $query = "SELECT * FROM productos";
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('getAllProductos => '.$mensaje);
        while ($productoSql = mysql_fetch_assoc($result)) {
            $productos[] = $this->mapSqlToProducto($productoSql);
        }
        return $productos;
    }
    
    public function getAllProductosVista() {
        Conexion::conectar();
        Conexion::selectDB();
        $productos = array();
        $query = "SELECT nombre, descripcion FROM productos ORDER BY nombre";
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('getAllProductos => '.$mensaje);
        while ($productoSql = mysql_fetch_assoc($result)) {
            Escritor::escribir ($productoSql['nombre']." => " . $productoSql['descripcion']);
            $productos[$productoSql['nombre']] = $productoSql['descripcion'];
        }
        
        return $productos;
    }
    
    public function getProductos($parametro) {
        Conexion::conectar();
        Conexion::selectDB();
        $productos = array();
        $query = "SELECT * FROM productos WHERE nombre LIKE '%$parametro%' or 
                  tipo LIKE '%$parametro%' or descripcion LIKE '%$parametro%'";
//        $query = "SELECT * FROM productos WHERE nombre='$parametro' or tipo='$parametro'
//                     or descripcion='$parametro'";
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('getProductos => '.$mensaje);
        while ($productoSql = mysql_fetch_assoc($result)) {
            $productos[] = $this->mapSqlToProducto($productoSql);
        }
        return $productos;
    }
    
    public function getDetalleProducto($idProducto) {
        Conexion::conectar();
        Conexion::selectDB();
        $query = "SELECT * FROM productos WHERE id='$idProducto'";
        $result = mysql_query($query);
        !$result?$mensaje = mysql_error():$mensaje = 'TRANSACCION EXITOSA';
        Escritor::escribir ('getInfoProducto => '.$mensaje);
        while ($productoSql = mysql_fetch_assoc($result)) {
            $producto = $this->mapSqlToProducto($productoSql);
        }
        return $producto;
    }
    
    public function getListaProductosPorTipo($tipo)
    {
        Conexion::conectar();
        Conexion::selectDB();
        $query = "select * from productos where tipo='$tipo'";
        $arrayProductos = array();
        
        $result = mysql_query($query);
        while($fila = mysql_fetch_array($result)){
            $arrayProductos[] = $fila;
            
        }
        
        
        return $arrayProductos;
    }
    
    private function mapProductoToInsertSql($producto) {
        $query = "INSERT INTO productos VALUES('','".$producto->getNombre()."','".$producto->getPrecio()."','".$producto->getDescr()."','".
                $producto->getImagen()."','".$producto->getDisponible()."','".$producto->getTipo()."')";
        return $query;
    }
    
    private function mapProductoToUpdateSql($producto) {  
        $query = "UPDATE `productos` SET `nombre`='".$producto->getNombre()."', `precio`='".$producto->getPrecio()."', 
            `descripcion`='".$producto->getDescr()."', `imagen`='".$producto->getImagen()."', `disponible`='".$producto->getDisponible()."',
            `tipo`='".$producto->getTipo()."' WHERE (`id`='".$producto->getId()."')";
        return $query;
    }

    private function mapSqlToProducto($productoSql) {
        $producto = new Producto($productoSql['nombre'], $productoSql['descripcion'], $productoSql['precio'], $productoSql['imagen'], $productoSql['disponible'], $productoSql['tipo'], $productoSql['id']);
        return $producto;
    }
    
}

?>
